package com.xinke.module.system.mapper.notice;

import java.util.*;

import com.xinke.component.common.pojo.PageResult;
import com.xinke.component.mybatis.mybatis.core.query.LambdaQueryWrapperExt;
import com.xinke.component.mybatis.mybatis.core.mapper.BaseMapperExt;
import com.xinke.module.system.model.entity.notice.NotifyMessageDO;
import org.apache.ibatis.annotations.Mapper;
import com.xinke.module.system.model.vo.notice.*;

/**
 * 站内信消息 Mapper
 *
 * @author yzx
 */
@Mapper
public interface NotifyMessageMapper extends BaseMapperExt<NotifyMessageDO> {

    default PageResult<NotifyMessageDO> selectPage(NotifyMessagePageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperExt<NotifyMessageDO>()
                .eqIfPresent(NotifyMessageDO::getUserId, reqVO.getUserId())
                .eqIfPresent(NotifyMessageDO::getUserType, reqVO.getUserType())
                .eqIfPresent(NotifyMessageDO::getTemplateId, reqVO.getTemplateId())
                .eqIfPresent(NotifyMessageDO::getTemplateCode, reqVO.getTemplateCode())
                .likeIfPresent(NotifyMessageDO::getTemplateNickName, reqVO.getTemplateNickName())
                .eqIfPresent(NotifyMessageDO::getTemplateContent, reqVO.getTemplateContent())
                .eqIfPresent(NotifyMessageDO::getTemplateType, reqVO.getTemplateType())
                .eqIfPresent(NotifyMessageDO::getTemplateParams, reqVO.getTemplateParams())
                .eqIfPresent(NotifyMessageDO::getReadStatus, reqVO.getReadStatus())
                .betweenIfPresent(NotifyMessageDO::getReadTime, reqVO.getReadTime())
                .orderByDesc(NotifyMessageDO::getMessageId));
    }

}